import { createApp } from 'vue'

import App from './App.vue'
import { router } from './router'
import ElementPlus from 'element-plus'
import 'element-plus/dist/index.css'
import 'ant-design-vue/dist/antd.css'
import Antd from 'ant-design-vue';

//国际化
import zhCn from 'element-plus/dist/locale/zh-cn.mjs'
//全局样式
import "./assets/style/index.less"
//pinia
import { createPinia } from 'pinia'
//按钮权限
import {authModes} from './configs/btnPermission'

const myApp = createApp(App)
import * as ElementPlusIconsVue from '@element-plus/icons-vue'


for (const [key, component] of Object.entries(ElementPlusIconsVue)) {
    myApp.component(key, component)
}
//全局自定义事件
// myApp.directive('permission', {
//     //el:绑定事件的节点  binding:其他指令的必要信息，比如value  事件传过来的值
//     mounted(el, binding) {
//         //事件传过来的值 第一个参数：是否用于判断是否有权限；第二个参数:用于何种模式显示按钮
//         const {curBtnPermission,curModel} = binding.value  
//         // console.log('------------',res);
//         const permission = JSON.parse(localStorage.permissions)
//         //判断本地存储permission中是否存在 绑定事件传过来的值
//         const has = permission.includes(curBtnPermission)
//         //当本地存储permission中的值与绑定事件传过来的值 不一样时，该账号没有权限
//         if(!has){
//             //再判断用何种模式
//             if(curModel===authModes.showOrHide){
//                 //移除节点
//                  // el.parentNode?.removeChild(el)
//                 (el.parentNode as HTMLElement).removeChild(el)
//             }else if(curModel ===authModes.disabledOrOpened){
//                 //添加样式
//                 el.setAttribute('disabled','true')
//                 el.setAttribute('title','对不起，您没有权限');
//                 el.classList.add("is-disabled");//针对element-plus做特殊处理
//             }
          
//         }
//     }
// })

myApp.use(router).use(createPinia()).use(ElementPlus, {
    locale: zhCn,
}).use(Antd).mount('#app')
